home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Info-Mac 4
/
Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso
/
Science
/
MAL ©P.f.Howden 1⁄1⁄89
/
PLOT FUNS
< prev
next >
Wrap
Text File
|
1989-07-11
|
3KB
|
51 lines
'WINDOW CLOSE 1:WINDOW 2,,(0,20)-(525,350):'this line experimental only.
1 CLEAR:CLS:PRINT "PLOT FUNS-MultiFunction Plotter in Hi/Lo Res.Graphics.":PRINT "TYPE FUNCTIONS ON LINES 11-19 eg: 11 Y(1)=X^2-3 , 12 Y(2)=SIN (X)+X"
2 W=70:N=10:INPUT "NUMBER OF FUNCTIONS=";Q:DIM M$(4),Y(Q),A(Q),M(Q),U(Q),Z(Q):W=W-1:P=490:Y=298:R=10:S=7:'P,Y=Screen horizontal,vertical pixels.R=Pix/line,S=Pix/letter,including space.
3 PRINT"For SLOPE plots, see notes below listing.":FOR J=0 TO INT(W/5):M$(0)=M$(0)+"v----":NEXT J:Z=(2+Q)*16-9
4 FOR J=0 TO W:M$(1)=M$(1)+"-":NEXT J:INPUT " Precision Graphics (1/0)?=";D
5 INPUT "STARTING X=";X:INPUT "X Increment (L)=";L:L1=L
6 IF D=1 THEN INPUT "Pixel Step M(if >1,plot is faster,lower precision)=";M:L=L/R:L1=2*L*M:PRINT" Note Box [] at X=0"
7 PRINT "Y(0)-AXIS ZERO(0-";W;:INPUT ")=";Y(0)
8 FOR J=1 TO Q:PRINT "Y(";J;") MULTIPLIER M(";J;")=";:INPUT M(J):PRINT "Y(";J;") OFFSET A(";J;")=";:INPUT A(J):NEXT J:CLS
9 PRINT "Xo=";X;"; X(vertical section)=";10*L1:'This line to PRINTER for TEXT-style LoRes Graph.
10 FOR J=1 TO Q:PRINT"For Y(";J;"),v----v=";5/M(J);" :OFFSET=";A(J):NEXT J:IF D=1 THEN PRINT M$(0):GOSUB 160:'These lines also to PRINTER for LoRes.
11 Y(1)=10*SIN(3.14159*X)
12 Y(2)=-10*SIN(3.14159*X*2)
13 Y(3)=15:IF X>=0 THEN Y(3)=5
14 'PI=3.141592#:Y(4)=(PI*SIN(5*X)/8-EXP(PI*SQR(X+1)/8)+SQR(X+PI*5/8))*SQR(1+PI*(X-1)^2/8)/((EXP(-1*X*X)-PI/4)*(1+PI*(X+1)^2/8))+PI/8
20 IF D=1 THEN GOSUB 200:GOTO 11
30 FOR J=1 TO Q:Y(J)=INT (Y(0)+M(J)*Y(J)+A(J)+.5):NEXT J
40 IF K=0 THEN K=1:M$(2)=M$(0):GOTO 60
50 M$(2)=M$(1)
60 IF (L>0 AND X>=-L/2 AND K3=0) OR (L<0 AND X<=L/2 AND K3=0) THEN K3=1:K4=1
70 V$="+"
80 FOR J=0 TO Q:IF J=0 AND N=10 THEN N=0:GOTO 130
90 IF Y(J)>W THEN Y(J)=W:V$=">":GOTO 130
100 IF Y(J)<0 THEN Y(J)=0:V$="<":GOTO 130
110 IF J=0 THEN V$="l":GOTO 130
120 V$=CHR$(J+48)
130 IF K4=1 THEN V$="O"
140 M$(3)=MID$(M$(2),1,Y(J)):M$(4)=MID$(M$(2),Y(J)+2,W-Y(J)):M$(2)=M$(3)+V$+M$(4)
150 NEXT J:PRINT M$(2):K4=0:X=X+L:N=N+1:GOTO 11:'This line to Printer for LoRes Plot
160 IF L>0 AND X>0 OR L<0 AND X<0 THEN RETURN
170 LINE((Y(0)+1)*S-2,ABS(X/L)+3+Z)-((Y(0)+1)*S+5,ABS(X/L)-3+Z),,B:RETURN:'Sets zero box on scale
' HiRes Plot Follows:
200 IF K=0 THEN K=1:FOR J=1 TO Q:Z(J)=Y(J):NEXT J:X=X+M*L:RETURN
210 FOR J=0 TO Q:U=(A(J)+M(J)*Z(J)+Y(0)+1)*S-2:V=(A(J)+M(J)*Y(J)+Y(0)+1)*S-2
220 IF ABS (U)>3000 THEN U=3000*SGN(U)
225 IF ABS (V)>3000 THEN V=3000*SGN(V)
230 LINE(U,Z)-(V,Z+M):Z(J)=Y(J)
240 IF J=0 AND A=3 THEN A=-1:LINE-(V+3,Z+M):IF B=19 THEN B=-1:LINE-(V+6,Z+M)
270 NEXT J:Z=Z+M:IF Z+M>Y-10 THEN LOCATE 19,1:PRINT:Z=Z-16
280 X=X+M*L:A=A+1:B=B+1:RETURN
'For Slope plotting,transfer the following lines into PLOTFUNS,where examples
'Y(1),Y(2) can be the same or different functions (remove ' marks) :
'11 Y(1)=10*SIN(3.14159*X) ...................... this will be plotted directly
'12 Z1=.0001:X=X+Z1:GOSUB 13:F1=Y(2):X=X-2*Z1:GOSUB 13:F2=Y(2):X=X+Z1:Y(2)=(F1-F2)/(2*Z1):GOTO 20
'13 Y(2)=10*SIN(3.14159*X) ...................... slope of this will be plotted
'14 RETURN
MACINTOSH LISTING